from abc import ABC, abstractmethod
from sqlalchemy.orm import Session


class ItemService(ABC):
    @abstractmethod
    def create(self, db: Session, obj_in):
        pass

    @abstractmethod
    def get(self, db: Session, id: int):
        pass
        
    @abstractmethod
    def get_all(self, db: Session):
        pass

    @abstractmethod
    def update(self, db: Session, db_obj, obj_in):
        pass

    @abstractmethod
    def delete(self, db: Session, db_obj):
        pass

    @abstractmethod
    def get_by_title(self, db: Session, *, title: str):
        pass